﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAO;
using LogicaNegocio;

namespace Minutero
{
    public partial class AltaAccion : Form
    {
        public static int idReunion;
        Form formu = null;
        public AltaAccion()
        {
            InitializeComponent();
        }
        public AltaAccion(int r)
        {
            InitializeComponent();
            idReunion = r;

        }
        public AltaAccion(int r, Form f)
        {
            InitializeComponent();
            idReunion = r;
            formu = f;

        }
        

        //public AltaAccion(int r, Form a)
        //{
        //    InitializeComponent();
        //    idReunion = r;
        //    Ag = a;
        //}

        private void txt_Usuario_TextChanged(object sender, EventArgs e)
        {
            dtp_FechaFin.Value = DateTime.Now.AddDays(5);
            lb_Usuario.Items.Clear();
            DataTable dt = Gestor.CargarGrillaUsuarios(txt_Usuario.Text);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                lb_Usuario.Items.Add(dt.Rows[i][0].ToString());
            }

        }

        private void btn_Agregar_Click(object sender, EventArgs e)
        {
            Accion a = new Accion();
            a.Nombre = txt_Nombre.Text;
            a.Descripcion = txt_Descripcion.Text;
            //a.Fecha_actual = DateTime.Parse(dtp_fechaAlta.Text);
            a.Fecha_actual = DateTime.Now;
            a.Fecha_completitud = DateTime.Parse(dtp_FechaFin.Text);

            try
            {
                if (string.IsNullOrEmpty(a.Nombre)) throw new Exception("Debe Ingresar un nombre para la acción");
                if (string.IsNullOrEmpty(a.Descripcion)) throw new Exception("Debe Ingresar una descripción para la acción");
                if (a.Fecha_completitud < DateTime.Now) throw new Exception("La fecha de completitud debe ser una fecha futura.");
                try
                {
                    a.Usuario = lb_Usuario.SelectedItem.ToString();
                }
                catch (Exception)
                {
                    throw new Exception("Debe seleccionar un usuario");;
                }

                a.Estado = "creada";
                a.Id_reunion = idReunion;

                if (a.Fecha_actual <= a.Fecha_completitud)
                {
                    if (Gestor.agregarAccion(a) == true)
                    {
                        this.limpiar();
                        lbl_Accion.Visible = true;
                        lbl_Accion.Text = "La accion fue registrada con exito";


                    }
                    else
                    {
                        lbl_Accion.Visible = true;
                        lbl_Accion.Text = "La accion no se pudo registrar";
                    }
                }
                else
                {
                    throw new Exception("La fecha de finalización debe ser mayor o igual a la fecha de inicio de la acción");
                    //MessageBox.Show("La fecha de finalización debe ser mayor o igual a la fecha de inicio de la acción");
                }
                this.Close();
                try
                {
                    if (formu != null) formu.Show();
                }
                catch (Exception)
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
           
        }

        private void limpiar()
        {
            txt_Nombre.Text = "";
            txt_Descripcion.Text = "";
            txt_Usuario.Text = "";
            dtp_fechaAlta.Text = "";
            dtp_FechaFin.Text = "";
            lb_Usuario.Items.Clear();
            lbl_Accion.Visible = false;
                   
        
        }

        private void btn_Limpiar_Click(object sender, EventArgs e)
        {
            this.limpiar();
        }

        private void txt_Nombre_TextChanged(object sender, EventArgs e)
        {
            lbl_Accion.Visible = false;
        }

        private void btn_Salir_Click(object sender, EventArgs e)
        {
            formu.Show();
            this.Close();
        }

        private void AltaAccion_Load(object sender, EventArgs e)
        {
            dtp_FechaFin.Value = DateTime.Now.AddDays(5);
            lb_Usuario.Items.Clear();
            DataTable dt = Gestor.CargarGrillaUsuarios(null);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                lb_Usuario.Items.Add(dt.Rows[i][0].ToString());
            }
        }

        private void AltaAccion_FormClosed(object sender, FormClosedEventArgs e)
        {
            try
            {
                if (formu != null) formu.Show();
            }
            catch (Exception)
            {
            }
            
        }

        

        
    }
}
